package com.zhiyou100.review.day001.homework;

/**
 * @packageName: Day001HomeWork
 * @className: com.zhiyou100.review.day001.homework
 * @Description: TODO 写出下面语句是否正确 不正确请改正  正确请写清楚过程  越详细越好
 * @author: yang
 * @date: 2020/6/1
 */
public class Day001HomeWork {
    public static void main(String[] args) {
        byte b1 = 12;
        /*
         * 正确
         * 过程：
         * 在内存中开辟了一块区域，区域类型是byte，大小是8个bit，空间名是b1
         * 把int类型的4个字节的12，自动转化为byte类型的12
         * 把byte类型的12赋值给byte类型的变量b1
         */
//        byte b2 = 133;
        /*
         * 错误
         * 改正： byte b2 = (byte) 133;
         */
//        byte b3 = b1 + 1;
        /*
         * 错误
         * 改正： byte b3 = (byte) (b1 + 1);
         */

        char c1 = 98;
        /*
         * 正确
         * 过程：
         * 在内存中开辟了一块区域，区域类型是char，大小是2个byte，空间名是c1
         * 把int类型的4个字节的98，自动转化为char类型的98
         * 把char类型的98赋值给char类型的变量c1
         */
        int i1 = c1 + 1;
        /*
         * 正确
         * 过程：
         * 在内存中开辟了一块区域，区域类型是int，大小是4个byte，空间名是i1
         * 把char类型的2个字节的98自动转换为int，
         * 98+1(int)=99
         * 把int类型的4个字节的99 赋值给int类型的变量i1
         */

//        char c2 = b1 + 11;
        /*
         * 错误
         * 改正： char c2 = (char) (b1 + 11);
         * char s2=(short)(b1+11) 错误：char只能和int之间转换，不能与byte/short转
         * char char3= (char)b1+(char)b1; 错误
         */
//        char c3 = b1 + b1;
        /*
         * 错误
         * 改正： char c3 = (char) (b1 + b1);
         */

        float f1 = 13;
        /*
         * 正确
         * 过程：
         * 在内存中开辟了一块区域，区域类型是float 大小是4个字节 空间名f1
         * 把int类型的4个字节的13 自动转化为float类型的4个字节的13.0f
         * 把float类型的13.0f赋值给float类型的变量l1
         */
//        float f2 = 13.1;
        /*
         * 错误
         * 改正： float f2 = (float) 13.1;
         */
        float f3 = b1 + c1;
        /*
         * 正确
         * 过程：
         * 在内存中开辟了一块区域，区域类型是float 大小是4个字节 空间名f3
         * 把char类型的2个字节的12，自动转换为12.0f
         * 把char类型的2个字节的98，自动转换为98.0f
         * 12.0f+98.0f=110.0f
         * 把float类型的110.0f赋值给float类型的变量l3
         */


        double d1 = f1;
        /*
         * 正确
         * 过程：
         * 在内存中开辟了一块区域，区域类型是double 大小是8个字节 空间名d1
         * 把float类型的4个字节的13.0f，自动转换为13.0
         * 把double类型的13.0赋值给double类型的变量d1
         */
//        double d1 = b1 + 11.1;
        /*
         * 错误
         * 改正： double d3 = b1 + 11.1;
         */
        byte b4 = (byte) ('苗' + 1);
        /*
         * 正确
         * 过程：'苗'=-41
         * 把char类型的2个字节的'苗' 转为int类型占4个字节-41
         * -41+1=-40
         * 把int类型的占4个字节的-40 转化byte类型的8个bit的-40
         * 把byte类型的-40 赋值给char类型的变量b4
         *
         */
        byte b5 = (byte) '苗' + 1;
        /*
         * 正确
         * 过程：
         * 把char类型的2个字节的'苗' 转换为byte类型的8个bit的-41
         * 把byte类型的8个bit的-41 转为 int类型的4个字节的-41
         * -41+1=-40
         * 把int类型的4个字节的-40 转为 byte类型的8个bit的-40
         * 把byte类型的-40 赋值给char类型的变量b4
         */

        float f4 = 2.0f;
        /*
         * 正确
         * 过程：
         * 在内存中开辟了一块区域，区域类型是float 大小是4个字节 空间名f4
         * 把float类型的2.0f赋值给float类型的变量樊
         */
        float f5 = 1;
        /*
         * 正确
         * 过程：
         * 在内存中开辟了一块区域，区域类型是float 大小是4个字节 空间名f5
         * 把int类型的4个字节的11 自动转化为float类型的4个字节的1.0f
         * 把float类型的1.0f赋值给float类型的变量f5
         */
        float f6 = f4 - f5;
        /*
         * 正确
         * 过程：
         * 2.0f-1.0f=1.0f
         * 把float类型的1.0f赋值给float类型的变量f6
         */
    }
}
